Web service providers, and provider networks in general, often allow customers to specify a workflow that accomplishes a set of computational tasks to solve a given computational problem, logistical problem, or generally any process that may be directed by a computer system. In some cases, a workflow may also be executed on a local client computing device.
Traditional approaches for providing workflow services usually rely on tools providing for selections of sequences of tasks. However, such traditional approaches fail to provide a user defining a workflow with broad flexibility in specifying data flow manipulation, data flow object integrity as transitions are made in between states of a workflow as the workflow is processed, and robust error handling within the framework of the processing of state machines for workflows. Further, these features for specifying error handling between states of a workflow state machine are provided through a language that is specific to defining workflows.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that the embodiments are not limited to the embodiments or drawings described. It should be understood that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean inclusive of, but not limited to.